<%@ page import="entity.User" %>
<%@ page import="entity.Address" %><%--
  Created by IntelliJ IDEA.
  User: ASUS
  Date: 2021/11/30
  Time: 15:59
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL</title>
</head>
<body>
<%--
可以替代JSP页面中访问数据时的复杂编码：${变量名}：只能在jsp里面使用
    可以很方便的取出域对象（pageContext、request、session、application）中存储的数据,前提是一定要先set
    变量名就是存储时得到key值
--%>
    <%
//        pageContext.setAttribute("name","pageContext");
//        request.setAttribute("name","request");
//        session.setAttribute("name","session");
//        application.setAttribute("name","application");
        // 如果域对象存储的变量名一样，则优先级与作用域相反
        // pageContext > request > session > application
        // 也可以指定作用域去找：${sessionScope.name}
//        request.getRequestDispatcher("el2.jsp").forward(request,response);


        User user = new User(1, "张三", 78.5,new Address(1,"天府新区"));
        pageContext.setAttribute("user",user);
    %>
<%--    ${name}--%>
<%--    ${sessionScope.name}--%>

    <table>
        <tr>
            <th>编号</th>
            <th>姓名</th>
            <th>成绩</th>
            <th>地址</th>
        </tr>
        <tr>
            <td>${user.id}</td>
<%--            这里是跟方法绑定的，不是跟属性绑定的：  --%>
<%--            1、Id              --%>
<%--            2、getId()         --%>

            <td>${user.name}</td>
            <td>${user["name"]}</td>
            <td>${user.address.value}</td>
<%--            这里写全了就是 pageContext.getAttribute("user").getId();--%>
<%--            如果没有写getId方法，则会报错--%>
        </tr>
    </table>
</body>
</html>
